Built-in Tests
The 3DM-CV7 provides users two types of built-in tests (BIT) for verifying its proper operation: the continuous BIT and the commanded BIT. The results for both tests are sent in the response packets to the respective commands.
Commanded Built-in Test
Command
Description
The commanded BIT is a disruptive process which pauses normal operation and performs a series of tests on various system components. The primary purpose of this command is to verify that the IMU sensors are operating normally; however, other tests are also conducted. See the table below for a complete description.
It may take several seconds for this command to complete. During this time, 3DM-CV7 data will be unavailable.
IMPORTANT: The IMU sensors can report false failures if the system is subjected to significant acceleration, rotation, or vibration during this test. Therefore, it is advised that users only run this test when the 3DM-CV7 is at rest.
NOTE: For some errors, the continuous BIT provides more detail than the commanded BIT. Therefore, a continuous BIT executed after a commanded BIT may offer additional insight into a commanded BIT failure.
The commanded BIT is formatted as a single uint32 bitfield.
Bit(s) | Error | Notes |
---|---|---|
0 | General Hardware Fault | A critical hardware component, such as the internal oscillator, has failed or is not operating properly. |
1 | General Firmware Fault | System firmware has detected a serious, unexpected, or abnormal condition. |
2 | Timing Overload | The system is unable to keep up with the processing demand. Usually this is a result of turning on too many features at once, such as streaming too many descriptors. This bit resets after this command is processed. |
3 | Buffer Overrun | A data buffer in the system has reached its capacity. Usually this means the connection bandwidth has been exceeded by streaming too much data. |
4-7 | Reserved (System) | |
8-11 | Reserved (Comms) | |
12 | Accelerometer Fault | The accelerometer has been damaged or is inoperative. |
13 | Gyroscope Fault | The gyroscope has been damaged or is inoperative. |
14 | Magnetometer Fault | The magnetometer has been damaged or is inoperative. |
15 | Pressure Sensor Fault | The pressure sensor has been damaged or is inoperative. |
16-17 | Reserved (IMU) | |
18 | Calibration Error | One or more IMU calibration tables are invalid. |
19 | General IMU Fault | A problem has been detected in the IMU subsystem. This bit is only for miscellaneous error conditions and will not necessarily be flagged along with other faults. |
20-21 | Reserved (filter) | |
22 | Filter Solution Fault | The filter solution is invalid. This bit will be set if a NaN appears in the filter output. The filter should be reset if this occurs. |
23 | General Filter Fault | A problem has been detected in the filter subsystem. This bit is only for miscellaneous error conditions and will not necessarily be flagged along with other faults. |
24-32 | Reserved |
Continuous Built-in Test
Command
Continuous Built-In Test (0x01,0x08)
Data Message
Continuous Built-In Test (0xA0,0x01)
Description
The continuous BIT reports the status of various internal flags which are continuously updated. The Continuous BIT command is not disruptive.
The continuous BIT results are also available to stream as a data message. Any BIT flags that go high between messages are not cleared until after the next message is sent. Due to its size, it is recommended to stream this message at low rates.
The sensor over-range flags are also available in a smaller message which provides results for individual axes and is better suited for high rate streaming. See the Overrange Status (0x80,0x18) message for details.
NOTE: Some of the continuous BIT flags are only updated when the commanded BIT is executed. For best results, conduct a commanded BIT at least once prior to monitoring the continuous BIT.
The continuous BIT is formatted as 16 - uint8 bitfields.
Bit(s) | Relative Index (Byte.Bit) |
Error | Notes |
---|---|---|---|
0 | 0.0 | System Clock Failure | The system clock is not operating properly. Timing may not be accurate and the system may be unreliable. |
1 | 0.1 | Power Fault | Power supply voltage is outside of the recommended range, or an internal power fault exists. |
2-3 | 0.2-0.3 | Reserved | |
4 | 0.4 | Firmware Fault | System firmware has detected an unexpected or abnormal condition. |
5 | 0.5 | Timing Overload | The system is unable to keep up with the processing demand. Usually this is a result of turning on too many features at once, such as streaming too many descriptors. This bit resets after this command is processed. |
6 | 0.6 | Buffer Overrun | A data buffer in the system has reached its capacity. Usually this means the connection bandwidth has been exceeded by streaming too much data. |
7-15 | 0.7-1.7 | Reserved | |
16 | 2.0 | IMU Process Fault | The IMU subsystem is unresponsive or not operating normally. |
17 | 2.1 | IMU Data Rate Mismatch | Faster/slower than expected base rate. |
18 | 2.2 | IMU Overrun/Dropped Data | At least 1 dropped frame / overrun. |
19 | 2.3 | IMU Stuck | No IMU data received in 1 second. |
20 | 2.4 | Filter Process Fault | The Filter subsystem is unresponsive or not operating normally. |
21 | 2.5 | Filter Dropped Data | Filter samples not equal to IMU samples. |
22 | 2.6 | Filter Rate Mismatch | Filter major cycle rate mismatch. |
23 | 2.7 | Filter Stuck | No filter data received in 1 second. |
24-31 | 3.0-3.7 | Reserved | |
32 | 4.0 | IMU Clock Fault | IMU is not running off the system clock. |
33 | 4.1 | IMU Communication Fault | No communication with IMU. |
34 | 4.2 | IMU Timing Overrun | IMU processes are taking longer than their allotted time. |
35 | 4.3 | IMU Reserved | |
36 | 4.4 | IMU Calibration Error - Accelerometer | A problem is detected with the accelerometer calibration. |
37 | 4.5 | IMU Calibration Error - Gyroscope | A problem is detected with the gyroscope calibration. |
38 | 4.6 | IMU Calibration Error - Magnetometer | A problem is detected with the magnetometer calibration. |
39 | 4.7 | IMU Calibration Error - Reserved | |
40 | 5.0 | Accelerometer General Fault | Accelerometer will not initialize. |
41 | 5.1 | Accelerometer Over-range | One or more axes subjected to accelerations near or outside the selected range. |
42 | 5.2 | Accelerometer Self-test Fail | The internal self-test of the accelerometer failed. |
43 | 5.3 | Accelerometer Reserved | |
44 | 5.4 | Gyroscope General Fault | Gyroscope will not initialize. |
45 | 5.5 | Gyroscope Over-range | One or more axes subjected to rotational rates near or outside the selected range. |
46 | 5.6 | Gyroscope Self-test Fail | The internal self-test of the gyroscope failed. |
47 | 5.7 | Gyroscope Reserved | |
48 | 6.0 | Magnetometer General Fault | Magnetometer will not initialize. |
49 | 6.1 | Magnetometer Over-range | One or more axes subjected to magnetic fields strengths near or outside the supported range. |
50 | 6.2 | Magnetometer Self-test Fail | The internal self-test of the magnetometer failed. |
51 | 6.3 | Magnetometer Reserved | |
52 | 6.4 | Pressure Sensor General Fault | Pressure sensor won't initialize. |
53 | 6.5 | Pressure Sensor Over-range | Pressure sensor subjected to pressures outside of the supported range. |
54 | 6.6 | Pressure Sensor Self-test Fail | The internal self-test of the pressure sensor failed. |
55 | 6.7 | Pressure Sensor Reserved | |
56 | 7.0 | Factory Bits Invalid | Device is not functioning normally. Contact support. |
57-63 | 7.1-7.7 | Reserved | |
64 | 8.0 | Reserved | |
65 | 8.1 | Reserved | |
66 | 8.2 | Filter Timing Overrun | Filter processes are taking longer than their allotted time. |
67 | 8.3 | Filter Timing Underrun | Filter processes are being skipped. |
68-127 | 8.4-15.7 | Reserved |